#include "widget.h"
#include "ui_widget.h"
#include <QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //初始化，设置几个元素
    ui->listWidget->addItem("C++");

    //第二种设置方式
    QListWidgetItem* li=new QListWidgetItem("Java");//不用设置父元素，它的父元素是listWidget，会随着listWidget释放
    ui->listWidget->addItem(li);

    ui->listWidget->addItem("Python");
}

Widget::~Widget()
{
    delete ui;
}


void Widget::on_pushButton_add_clicked()
{
    //添加元素
    //获取输入框内容
    QString str(ui->lineEdit->text());
    //设置进列表
    ui->listWidget->addItem(str);
}

void Widget::on_pushButton_delete_clicked()
{
    //删除元素
    //获取当前选中的元素
    int row=ui->listWidget->currentRow();
    //删除选中的元素
    ui->listWidget->takeItem(row);
}

void Widget::on_listWidget_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
{
    // 通过这个槽函数来感知到变化.
        if (current != nullptr) {
            qDebug() << "当前选中的元素: " << current->text();
        }
        if (previous != nullptr) {
            qDebug() << "上次选中的元素: " << previous->text();
        }
}
